Skip to content

Release 26.8.23.1 - first H-3 firmware release - #11

Merged
TrevorSchirmer merged 26 commits into
mainfrom
beta
Aug 25, 2026
Merged

Release 26.8.23.1 - first H-3 firmware release#11
TrevorSchirmer merged 26 commits into
mainfrom
beta

Conversation

@bharvey88

@bharvey88 bharvey88 commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Merges beta into main for the 26.8.23.1 release. Merge #10 first so the tag comes out as 26.8.23.1. Changes include:

Merge commit, not squash. Merging triggers Build and Publish on main, which creates release 26.8.23.1 and publishes firmware/ and firmware-d/ to Pages. Pages must be enabled (Settings -> Pages -> Source: GitHub Actions) before that run, or the deploy step fails.

🤖 Generated with Claude Code

TrevorSchirmer and others added 21 commits July 9, 2026 11:47
Joins the previously unrelated beta and main histories. The tree of this
commit is identical to main (b825c46); beta's prior content was leftover
AIR-1/PLT-1 template files.

Future beta syncs are ordinary fast-forwards from here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Every Build and Publish run on main fails at Set Version because
release-drafter cannot find .github/release-drafter.yml. Copied from
H-1 with the changelog link pointed at this repo.

Generated with [Claude Code](https://claude.com/claude-code)
The smart firmware only offered the hotspot and captive portal for
first-time Wi-Fi setup. With improv_serial the browser installer can
prompt for Wi-Fi right after flashing, matching the H-1.

Generated with [Claude Code](https://claude.com/claude-code)
Same runtime switch the rest of the fleet has (AIR-1, MSR-2): default
off, esp32_ble_tracker start_scan/stop_scan, re-applied at on_boot -300
so scanning matches the state restored from flash. Smart firmware only;
H-3D has no api so bluetooth_proxy cannot load there.

Generated with [Claude Code](https://claude.com/claude-code)
Add the release-drafter config the build workflow needs
Auto-assign on fork PRs via pull_request_target
Add improv_serial so the web installer can set Wi-Fi
# Conflicts:
#	Integrations/ESPHome/Core.yaml
Ports the MSR-2 Stable/Beta channel logic: Firmware Channel select,
apply_ota_source script, Firmware Update button, http_request buffers
sized for GitHub release-asset redirects, and a beta-channel build
that defaults the select to Beta. build-beta.yml publishes beta pushes
to the rolling beta-fw pre-release.

Generated with [Claude Code](https://claude.com/claude-code)
Long-form PR template in .github (the Types of changes boxes feed the
shared label-check), standalone label-check.yml on pull_request_target
so fork PRs get labelled, and ci.yml back to read-only with the inline
label job removed, matching MSR-2.

Generated with [Claude Code](https://claude.com/claude-code)
Same layout as H-2: charity section, shop link to the H-3 listing,
photo placeholder until there is a product image.

Generated with [Claude Code](https://claude.com/claude-code)
Bring the README in line with the H-2 one
Bring the PR template and label check in line with the fleet
Add the Firmware Channel select and beta builds
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 678fafef-2453-4687-9873-5b77ba58397e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Set version to 26.8.23.1 for the first release
Comment thread Integrations/ESPHome/beta-channel/H-3.yaml Outdated
@bharvey88 bharvey88 mentioned this pull request Aug 23, 2026
10 tasks
Beta builds now compile H-3.yaml directly and the Firmware Channel
select defaults to Stable on all builds. Mirrors CAST-1 #60 and
AIR-1 #125.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@TrevorSchirmer

Copy link
Copy Markdown
Member

@bharvey88 Failing GH action. Is it because something isn't merged yet?
Run BASE="https://github.com/ApolloAutomation/H-3/releases/download/beta-fw"
find: ‘fw/firmware-standard’: No such file or directory
Error: manifest.json not found for firmware-standard
Error: Process completed with exit code 1.

The publish job never found the firmware it had just downloaded:

    find: 'fw/firmware-standard': No such file or directory
    Error: manifest.json not found for firmware-standard

actions/download-artifact only creates a per-artifact subdirectory when
two or more artifacts match the pattern. With exactly one match it
extracts flat into `path`:

    Total of 1 artifact(s) downloaded
    Starting download of artifact to: /home/runner/work/H-3/H-3/fw

H-3 builds a single beta image, since H-3D has no wifi or OTA and is
USB-flash only, so the files landed in fw/ while the publish step looked
in fw/firmware-standard/. The rest of the fleet builds two beta images
and always gets the subdirectory, which is why the same script works
there. Downloading by name instead of pattern pins the layout regardless
of artifact count.

Also adds the beta-fw tag repoint step that MSR-1 and CAST-1 already
have. Without it the release tag tracks main HEAD rather than the beta
commit that produced the assets; the tag currently points at main.

The beta-fw release has no assets at all right now, so a device switched
to the Beta channel gets a 404 on the manifest until this lands.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
…t-path

Fix beta asset publish and repoint the beta-fw tag
@TrevorSchirmer
TrevorSchirmer merged commit f5831eb into main Aug 25, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants